In the production of products, or refinements, certain sets of resources are used to create each such product. Each refinement might use one or more resources to facilitate its production. Additionally, such resources might be shared as common components that are used to form a plurality of different refinements. In order to produce the desired level of different refinements, it is necessary to maintain a sufficient supply of resources on hand that will satisfy the general need, in light of the complex interactions between the various refinements and resources.
The desired levels of refinements are usually derived from trying to maximize the amount of revenue that can be derived from selling the refinements. Hence the price to be charged for each refinement would be one important factor in determining optimum levels of production for each refinement. In the simplest case, an infinitely large supply of resources would be maintained, so that any desired levels of refinements could be produced without delay.
Other considerations, however, do not make this solution practical. Profits for each refinement must be considered, and profits are a factor of the price required to obtain each component part that goes to make up the refinement. Resources that are maintained as inventory often carry a high price. Such resources lose their relative value over time (also referred to as “erosion”), due to aging of the parts, technology advancements, and the like. Storage costs of inventory are also a factor to be considered. Hence, maintaining a large inventory would guarantee continuous production of the refinements, but would lead to higher production costs.
The converse to this situation would be to maintain very small inventories of resources. This presents a problem, however, when the production process demands more resources than are available in the present inventory. New component parts must be ordered from supplier in order to fill the need. If the need is immediate (as it often is), certain parts may not be available at all, due to the limited production capabilities of the supplier. Otherwise, even if the parts are available, a higher price will generally be charged to expedite the shipment of such component parts. Hence, maintaining a low inventory is not a realistic solution, as production might be halted altogether, or production costs would escalate due to the added cost for expedited component resources.
This complex set of interactions results in an associated multivariate normal distribution of demand and an associated Expected Value Function (EVF) of a set (or vector) of refinements, as a function of a given set (or vector) of resources. Each modeled “plan” or interaction of refinements and resources will produce different EVFs, which are a function of many different elements, and connect rates between the elements. In general this function has been very difficult to solve and requires significant computer resources, and/or time to solve. Additionally, the non-deterministic nature of the function leads only to approximate results, and not full solutions.
A method and apparatus have been provided in the '560 application (as incorporated herein) to provide a deterministic solution to the EVF. The modeling technique described properly accounts for the horizontal and vertical interactions between certain modeled elements. The solution technique provides a closed form expression of the resulting function, wherein it will not be necessary to solve multidimensional integrals in order to determine a solution. This closed form (deterministic) expression should also be executable on ordinary computer resources, and in a reasonable period of time, despite the multivariate nature of the problem.
Even with the closed form expression provided by the '560 application, and the relative ease of its solution over prior forms, it is desirable to optimize the expression in order to determine an adequate (but not overabundant) supply of resources to provide a desired level of refinements. Any number of optimization techniques might be employed. Certain prior optimization techniques are search-based, and iteratively determine a solution for the expression by comparing each new determined result with the last. Such solutions scale exponentially as the complexity of the problem (or plan) increases, and become computationally intractable for even modest sized real-world applications. Additionally, such solutions are not guaranteed to find a global maximum, and instead the search might end up converging on a local maximum instead.
Current techniques or methods used for optimization can be generally divided into unconstrained optimization and constrained optimization. In unconstrained optimization, methods are broadly categorized on whether they use derivative information or do not use such information. Methods that do not use derivative information are search methods used for problems that are very nonlinear or have discontinuities. When the function to be optimized is continuous, gradient methods generally work best. Newton's method is an example of a higher order method that uses second order information. All such methods are computationally expensive, especially as the order increases, and as the dimensionality of the problems increases. With regards to the latter, the increase in computational complexity grows exponentially with the number of dimensions. Such methods are therefore prohibitive for any real world resource allocation optimization problem.
Constrained optimization aims at solving the Kuhn-Tucker (KT) equations that are necessary conditions for optimality for a constrained optimization problem. State of the art methods include constrained quasi-Newton methods, which are commonly referred to as Sequential Quadratic Programming (SQP) methods. These methods can at most achieve the efficiency of unconstrained optimization, and in general are less efficient.
Accordingly, what is needed in the field is an optimization technique that simplifies the optimization solution of the closed form expression to still another deterministic value, and a solution that scales efficiently with the size of the problem. The solution should work for unconstrained as well as nonlinear constrained optimizations. The solution must account for the dependencies and interactions between the various elements (i.e., refinements and resources). The solution must also provide a reasonable time to termination, and one that does not grow exponentially in its complexity as the order of the plan increases. The solution should arrive at a global maximum for the value function, and not get caught finding local maxima. For an “N” dimensional problem, the deterministic solution might provide for maximizing N one-dimensional expressions (over one variable each), instead of maximizing one N-dimensional expression (over many variables).